from flask import request
import time
import json
from .public import send_to_other
WEBSOCKET_DICT = dict()

#群聊
def group_chat(group,name):
    sock = request.environ.get('wsgi.websocket')
    # 后端维护所有的前端websocket对象，当有数据更新时，就给每个对象推送更新后的数据
    send_to_other(sock_list= WEBSOCKET_DICT.get(group),now_sock=sock,data=f'{name} 上线了')
    '0、将socket对象存到列表中'
    if WEBSOCKET_DICT.get(group):
        WEBSOCKET_DICT[group].append(sock)
    else:
        WEBSOCKET_DICT[group] = [sock]
    print(sock, time.strftime('%Y-%m-%d %H:%M:%S'), '来socket了')
    while True:
        '1、阻塞等待接收数据'
        data = sock.receive() #接收到群聊用户发送的数据
        '2、发送数据给其他在群聊中的所有人'
        send_to_other(sock_list=WEBSOCKET_DICT.get(group), now_sock=sock, data=f'{name}：{data}')
        '3、客户端中断连接,在群聊中将sock对象移除'
        if data == None:
            WEBSOCKET_DICT[group].remove(sock)
            send_to_other(sock_list=WEBSOCKET_DICT.get(group),now_sock=sock,data=f'{name}下线了')
            sock.close()
            print('浏览器断开连接', time.strftime('%Y-%m-%d %H:%M:%S'))
            break
    return 'ok'